/*
 * Copyright © 2015-2017 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package ch.app.test.qianzhiku.pojo;

import com.alibaba.fastjson.annotation.JSONField;

import java.util.Date;

/**
 * 抽象类.
 *
 * @author cjshen
 * @since 1.0
 */
public abstract class AbstractRecord {
    private String id;

    /**
     * 实物条码 .
     */
    private String waybillNo;

    /**
     * 实物类型.10:运单,20:包,30:笼,40:车 *.
     */
    private String expType;

    /**
     * 数量  .
     */
    private Integer pkgQty;

    /**
     * 计费标识 .
     */
    private String feeFlag;

    /**
     * 计费金额  .
     */
    private Double feeAmt;

    /**
     * 操作网点.加密狗的网点编码  .
     */
    private String orgCode;

    /**
     * 频次 .
     */
    private String frequencyNo;

    /**
     * 操作码  .
     */
    private Integer opCode;

    /**
     * 辅助操作码 .
     */
    private String auxOpCode;

    /**
     * 路由检查代码 .
     */
    private Integer routeCode;

    /**
     * 路由检查辅助信息 .
     */
    private String auxRouteCode;

    /**
     * 状态 .
     */
    private String status;

    /**
     * 转换状态.初始值0  .
     */
    private String transferStatus;

    /**
     * 轨迹转换状态.初始值.
     */
    private String traceStatus;

    /**
     * 上传时间 .
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date uploadTime;

    /**
     * 创建时间 .
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date createTime;

    /**
     * 创建人编号 .
     */
    private String createUserCode;

    /**
     * 创建人  .
     */
    private String createUserName;

    /**
     * 创建组织编号 .
     */
    private String createOrgCode;

    /**
     * 创建终端  .
     */
    private String createTerminal;

    /**
     * 操作设备类型 .
     */
    private String deviceType;

    /**
     * 备注 .
     */
    private String remark;

    /**
     * 关联ID,记录被修改/删除后生成的新纪录保留原记录的ID .
     */
    private String refId;

    /**
     * 修改时间  .
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date modifyTime;
    /**
     * 修改人编号  .
     */
    private String modifyUserCode;

    /**
     * 修改人 .
     */
    private String modifyUserName;

    /**
     * 修改组织编号.
     */
    private String modifyOrgCode;

    /**
     * 修改终端.
     */
    private String modifyTerminal;

    /**
     * 读取标志.
     */
    private String queryFlag;

    /**
     * 网点类型.
     */
    private String orgType;

    /**
     * 记录序号（自增） .
     */
    private String orderId;

    /**
     * 毫秒数 .
     */
    private String snNo;

    /**
     * 记录状态 .
     */
    private String dataStatus;

    /**
     * 记录OCC抽取状态.
     */
    private String occStatus;

    /**
     * 错误消息.
     */
    private String errorMessage;

    /**
     * 前置库 错误 次数.
     */
    private String errorTimes;

    /**
     * 线程分配标识 .
     */
    private Integer dataId;

    /**
     * 处理时间 .
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date operateTime;

    /**
     * 收派员编号.
     */
    private String empCode;

    /**
     * 收派员姓名.
     */
    private String empName;

    public String getEmpCode() {
        return empCode;
    }

    public void setEmpCode(final String empCode) {
        this.empCode = empCode;
    }

    public String getEmpName() {
        return empName;
    }

    public void setEmpName(final String empName) {
        this.empName = empName;
    }

    /**
     * getOperateTime.
     *
     * @return Date
     */
    public Date getOperateTime() {
        if (operateTime == null) {
            return null;
        } else {
            return (Date) operateTime.clone();
        }
    }

    /**
     * setOperateTime.
     *
     * @param operateTime operateTime
     */
    public void setOperateTime(final Date operateTime) {
        if (operateTime == null) {
            this.operateTime = null;
        } else {
            this.operateTime = (Date) operateTime.clone();
        }
    }

    public Integer getDataId() {
        return dataId;
    }

    public void setDataId(final Integer dataId) {
        this.dataId = dataId;
    }

    public String getSnNo() {
        return snNo;
    }

    public void setSnNo(final String snNo) {
        this.snNo = snNo;
    }

    public String getErrorTimes() {
        return errorTimes;
    }

    public void setErrorTimes(final String errorTimes) {
        this.errorTimes = errorTimes;
    }

    /**
     * getUploadTime.
     *
     * @return Date
     */
    public Date getUploadTime() {
        if (uploadTime == null) {
            return null;
        } else {
            return (Date) uploadTime.clone();
        }
    }

    /**
     * setUploadTime.
     *
     * @param uploadTime uploadTime
     */
    public void setUploadTime(final Date uploadTime) {
        if (uploadTime == null) {
            this.uploadTime = null;
        } else {
            this.uploadTime = (Date) uploadTime.clone();
        }
    }

    /**
     * getCreateTime.
     *
     * @return date
     */
    public Date getCreateTime() {
        if (createTime == null) {
            return null;
        } else {
            return (Date) createTime.clone();
        }
    }

    /**
     * setCreateTime.
     *
     * @param createTime createTime
     */
    public void setCreateTime(final Date createTime) {
        if (createTime == null) {
            this.createTime = null;
        } else {
            this.createTime = (Date) createTime.clone();
        }
    }

    /**
     * getModifyTime.
     *
     * @return Date
     */
    public Date getModifyTime() {
        if (modifyTime == null) {
            return null;
        } else {
            return (Date) modifyTime.clone();
        }
    }

    /**
     * setModifyTime.
     *
     * @param modifyTime modifyTime
     */
    public void setModifyTime(final Date modifyTime) {
        if (modifyTime == null) {
            this.modifyTime = null;
        } else {
            this.modifyTime = (Date) modifyTime.clone();
        }
    }


    public String getWaybillNo() {
        return waybillNo;
    }

    public void setWaybillNo(final String waybillNo) {
        this.waybillNo = waybillNo;
    }

    public String getExpType() {
        return expType;
    }

    public void setExpType(final String expType) {
        this.expType = expType;
    }

    public Integer getPkgQty() {
        return pkgQty;
    }

    public void setPkgQty(final Integer pkgQty) {
        this.pkgQty = pkgQty;
    }

    public String getFeeFlag() {
        return feeFlag;
    }

    public void setFeeFlag(final String feeFlag) {
        this.feeFlag = feeFlag;
    }

    public String getOrgCode() {
        return orgCode;
    }

    public void setOrgCode(final String orgCode) {
        this.orgCode = orgCode;
    }

    public String getFrequencyNo() {
        return frequencyNo;
    }

    public void setFrequencyNo(final String frequencyNo) {
        this.frequencyNo = frequencyNo;
    }

    public Integer getOpCode() {
        return opCode;
    }

    public void setOpCode(final Integer opCode) {
        this.opCode = opCode;
    }

    public String getAuxOpCode() {
        return auxOpCode;
    }

    public void setAuxOpCode(final String auxOpCode) {
        this.auxOpCode = auxOpCode;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(final String status) {
        this.status = status;
    }

    public String getTransferStatus() {
        return transferStatus;
    }

    public void setTransferStatus(final String transferStatus) {
        this.transferStatus = transferStatus;
    }


    public String getCreateUserCode() {
        return createUserCode;
    }

    public void setCreateUserCode(final String createUserCode) {
        this.createUserCode = createUserCode;
    }

    public String getCreateUserName() {
        return createUserName;
    }

    public void setCreateUserName(final String createUserName) {
        this.createUserName = createUserName;
    }

    public String getCreateOrgCode() {
        return createOrgCode;
    }

    public void setCreateOrgCode(final String createOrgCode) {
        this.createOrgCode = createOrgCode;
    }

    public String getCreateTerminal() {
        return createTerminal;
    }

    public void setCreateTerminal(final String createTerminal) {
        this.createTerminal = createTerminal;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(final String remark) {
        this.remark = remark;
    }

    public String getRefId() {
        return refId;
    }

    public void setRefId(final String refId) {
        this.refId = refId;
    }


    public String getModifyUserCode() {
        return modifyUserCode;
    }

    public void setModifyUserCode(final String modifyUserCode) {
        this.modifyUserCode = modifyUserCode;
    }

    public String getModifyUserName() {
        return modifyUserName;
    }

    public void setModifyUserName(final String modifyUserName) {
        this.modifyUserName = modifyUserName;
    }

    public String getModifyOrgCode() {
        return modifyOrgCode;
    }

    public void setModifyOrgCode(final String modifyOrgCode) {
        this.modifyOrgCode = modifyOrgCode;
    }

    public String getModifyTerminal() {
        return modifyTerminal;
    }

    public void setModifyTerminal(final String modifyTerminal) {
        this.modifyTerminal = modifyTerminal;
    }

    public Integer getRouteCode() {
        return routeCode;
    }

    public void setRouteCode(final Integer routeCode) {
        this.routeCode = routeCode;
    }

    public Double getFeeAmt() {
        return feeAmt;
    }

    public void setFeeAmt(final Double feeAmt) {
        this.feeAmt = feeAmt;
    }

    public String getAuxRouteCode() {
        return auxRouteCode;
    }

    public void setAuxRouteCode(final String auxRouteCode) {
        this.auxRouteCode = auxRouteCode;
    }

    public String getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(final String deviceType) {
        this.deviceType = deviceType;
    }

    public String getTraceStatus() {
        return traceStatus;
    }

    public void setTraceStatus(final String traceStatus) {
        this.traceStatus = traceStatus;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(final String orderId) {
        this.orderId = orderId;
    }

    public String getDataStatus() {
        return dataStatus;
    }

    public void setDataStatus(final String dataStatus) {
        this.dataStatus = dataStatus;
    }

    public String getOccStatus() {
        return occStatus;
    }

    public void setOccStatus(final String occStatus) {
        this.occStatus = occStatus;
    }

    public String getQueryFlag() {
        return queryFlag;
    }

    public void setQueryFlag(final String queryFlag) {
        this.queryFlag = queryFlag;
    }

    public String getOrgType() {
        return orgType;
    }

    public void setOrgType(final String orgType) {
        this.orgType = orgType;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(final String errorMessage) {
        this.errorMessage = errorMessage;
    }

    public String getId() {
        return id;
    }

    public void setId(final String id) {
        this.id = id;
    }
}
